iT邦幫忙

2026 iThome 鐵人賽

DAY 10
1
IT Operation

連網路壞在哪都不知道,怎麼成為系統網路工程師?系列 第 10

Day.10|網路時好時壞,最怕的不是斷線而是偶爾斷

  • 分享至 

  • xImage
  •  

原本以為 Day.10 的主題會是網路斷線,沒想到今天先斷線的是我們的參賽資格。

因為團隊中有一篇文章忘記在期限內發布,我們的團體挑戰正式宣告中斷。這件事證明了,鐵人賽最危險的 Single Point of Failure,不一定是核心交換器,也可能只是那顆忘記按下「發布」的按鈕。

團隊模式雖然已經顯示 Offline,但我的個人挑戰還能繼續。既然無法再一起抵達終點,那我就切換成 Standalone Mode,把剩下的二十天走完。

畢竟做這行遲早都會遇到突發狀況。系統斷了要找替代路徑,隊伍斷賽也是一樣。

所以,Day.10 照常上線。

隊伍可以斷線,文章不能。


「剛才網路不能用,現在又好了。」

這句話是企業 IT 排錯裡,精神消耗特別高的一種類型。

完全斷線其實比較好處理。

因為故障持續存在,我們可以查看現場狀態、執行測試、替換設備,再根據結果一步步縮小範圍。

間歇性問題就不一樣了。

使用者回報時不能用,等我們走到現場,網站已經正常開啟。Ping 沒有掉包、網卡顯示已連線,設備 Log 乍看也沒有異常。

你只好先回座位。

五分鐘後,訊息又來了:

現在又斷了。

設備彷彿知道你在看它,只要 IT 人員靠近就立刻恢復正常,還有人開玩笑要掛張我們的照片在這裡鎮守。而這當然不是什麼靈異現象,只是我們缺少故障發生當下的資料。

處理間歇性問題,重點不是一直守在現場等它發作,而是建立一套能留下時間與狀態的觀測方法。


「時好時壞」本身還不是問題定義

使用者說網路不穩,可能代表:

  • Wi-Fi 偶爾斷線
  • 網頁載入很慢
  • DNS 有時解析失敗
  • 視訊會議卡頓
  • VPN 定期重連
  • 大型檔案傳輸中斷
  • RDP Session 被切斷
  • 某套系統偶爾 Timeout
  • Internet 出口瞬間丟包
  • 只有特定網站不穩

這些現象的調查方向並不相同。

因此,第一步仍然是把描述轉成可驗證的問題。

例如:

Client A 從上午 9:00 起,每隔約十至十五分鐘會中斷一至兩分鐘。中斷期間無法 Ping Default Gateway,但同區域其他使用者正常。

這段描述已經提供:

  • 開始時間
  • 發生頻率
  • 每次持續時間
  • 受影響設備
  • 失敗的測試點
  • 對照組

比「網路怪怪的」有用太多。


先建立事件時間軸

間歇性問題最重要的資訊,通常是時間。

至少記錄:

  • 第一次發生時間
  • 最近一次發生時間
  • 每次持續多久
  • 發生頻率
  • 是否固定時段
  • 當時正在使用什麼服務
  • 同時有哪些設備受影響
  • 問題恢復前做過什麼

可以簡單整理成表格:

時間 現象 Gateway 內部 Server 外部 IP DNS
09:10 視訊卡頓 正常 正常 延遲升高 正常
09:24 完全斷線 失敗 失敗 失敗 失敗
09:26 自動恢復 正常 正常 正常 正常
09:39 網頁逾時 正常 正常 正常 失敗

當資料逐漸累積後,可能會看出不同模式。

例如:

  • 每十五分鐘發生一次
  • 每天中午最嚴重
  • 只在使用 VPN 時發生
  • 只在大型傳輸期間出現
  • 每次 DHCP 續租時中斷
  • AP 漫遊後開始異常
  • 備份排程啟動時延遲升高

時間規律通常是找出根因的重要線索。


同時測三個位置,不要只 Ping Internet

遇到網路不穩,很多人會持續 Ping:

8.8.8.8

這能觀察外部連線,但如果出現 Timeout,仍然不知道問題發生在哪一段。

比較有效的方法,是同時測試不同位置。

例如:

測試一:Default Gateway
測試二:內部 Server
測試三:外部 IP
測試四:DNS Query

假設 Client 位於:

10.10.20.35/24

可以測:

ping -t 10.10.20.1
ping -t 10.10.50.10
ping -t 8.8.8.8

再定期執行 DNS 查詢。

不同結果可以提供不同方向。


Gateway、內部與外部同時中斷

可能原因:

  • Client 網卡
  • 網路線
  • Switch Port
  • Access Switch
  • Wi-Fi
  • VLAN
  • 本地 Gateway
  • 端點休眠或電源管理

因為連最靠近的 Gateway 都失敗,問題很可能位於 Client 到 Gateway 之間。


Gateway 正常,內部與外部同時中斷

可能方向:

  • Gateway 之後的上游路徑
  • Core Switch
  • Firewall
  • Routing
  • 共用網路設備
  • ACL
  • 網路 Loop 或壅塞

Gateway 和內部正常,只有外部中斷

可能原因:

  • Internet Firewall
  • NAT
  • ISP
  • Default Route
  • 外部 DNS
  • Proxy
  • 目的網站
  • Internet 出口壅塞

IP 全部正常,只有名稱解析失敗

可能方向:

  • DNS Server
  • DNS 封包被阻擋
  • VPN 派發 DNS
  • Resolver Timeout
  • DNS Cache
  • Forwarder

只有特定應用失敗

例如:

  • Ping 正常
  • DNS 正常
  • 網頁正常
  • VPN 卻定期斷線

這時應查看:

  • VPN Keepalive
  • Session Timeout
  • MTU
  • UDP Timeout
  • NAT Session
  • VPN Gateway
  • Client 軟體
  • 身分驗證 Token

不應繼續只靠 Ping 判斷。


Ping 可以觀察什麼?

持續 Ping 能幫助記錄:

  • Packet Loss
  • Round-trip Time
  • 延遲波動
  • 中斷時間
  • 恢復時間

例如:

Reply from 10.10.20.1: time=1ms
Reply from 10.10.20.1: time=2ms
Request timed out.
Request timed out.
Reply from 10.10.20.1: time=1ms

這至少能證明某個時間區間沒有收到 ICMP 回覆。

但 Ping 不能直接證明:

  • 是去程還是回程丟包
  • 是否只有 ICMP 被限制
  • 哪台設備丟棄封包
  • TCP 服務是否同樣失敗
  • 應用程式為什麼卡住

而且某些設備會降低 ICMP 回覆優先級。

在高負載時,Router 可能先處理轉送工作,不積極回覆對自己的 Ping。這時設備 Ping 丟包,不代表穿過它的資料流量一定也丟包。

因此,Ping 是觀測工具,不是最終根因。


Packet Loss 和高延遲不一樣

兩者都會讓使用者感覺網路很差,但意義不同。

Packet Loss

代表部分封包沒有成功抵達或沒有收到回覆。

可能造成:

  • TCP Retransmission
  • 下載速度下降
  • VPN 中斷
  • 語音破碎
  • 視訊凍結
  • Session Timeout

常見原因:

  • 線材錯誤
  • 無線干擾
  • 介面壅塞
  • Queue Drop
  • 網路 Loop
  • ISP 問題
  • 防火牆負載
  • MTU/Fragmentation

高延遲

封包仍然抵達,但花費時間變長。

可能原因:

  • 網路壅塞
  • 路徑改變
  • WAN 距離
  • Queueing
  • Server 回應慢
  • DNS 查詢慢
  • 無線重傳
  • VPN 加密負載

Jitter

Jitter 是延遲變化程度。

例如:

10 ms
12 ms
150 ms
15 ms
200 ms

平均延遲可能還沒有高到完全不可用,但變化非常大。

對以下即時服務特別有影響:

  • VoIP
  • 視訊會議
  • 即時串流
  • 遠端桌面
  • 線上遊戲

因此,「平均 Ping 只有 30 ms」不代表視訊一定穩定,還要看 Loss 和 Jitter。


先找正常 Client 當對照組

如果只有一位使用者回報不穩,可以在同一時間對正常 Client 進行相同測試。

例如:

異常 Client:Gateway 每十分鐘丟包
正常 Client:Gateway 全程正常

問題比較可能集中在:

  • 異常 Client
  • 網路線
  • Switch Port
  • 特定 AP
  • 使用者位置
  • 網卡 Driver
  • 端點軟體

如果兩台 Client 同時丟包,則可能是:

  • 共用 AP
  • Access Switch
  • 上聯
  • Gateway
  • Firewall
  • ISP
  • 共用服務

對照組能幫助我們分辨:

這是整個環境的問題,還是只有這台設備遇到?

沒有對照組時,很容易把 Internet 的正常波動誤認為本地故障,也可能把單機問題錯判成公司網路事故。


有線網路間歇性故障要看什麼?

如果使用者透過有線網路連線,優先檢查以下項目。


CRC 和 Interface Error

交換器介面出現持續增加的:

  • CRC Error
  • Input Error
  • Frame Error
  • Runts
  • Giants
  • Output Drop

可能與以下原因有關:

  • 線材品質
  • 水晶頭
  • 資訊插座
  • SFP
  • Duplex
  • 介面硬體
  • 壅塞

不要只看總數,要比較一段時間內是否增加。

如果使用者每次斷線時 CRC 都快速增加,這是很有價值的關聯。


Interface Flapping

查看 Switch Log 是否出現:

Interface Gi1/0/17 changed state to down
Interface Gi1/0/17 changed state to up

如果時間和使用者斷線一致,就應檢查:

  • 線材接觸
  • 網卡
  • Dock
  • Switch Port
  • PoE
  • 端點電源管理

Speed/Duplex

如果協商結果異常,可能在小流量下看似正常,大流量時效能突然崩壞。

檢查兩端是否:

  • 都使用 Auto
  • 或固定為相同 Speed/Duplex

若一端 Full、另一端 Half,可能出現 Collision、CRC 和嚴重效能問題。


Output Drop

Output Drop 可能代表介面送出流量時,Queue 已滿。

常見於:

  • 上行頻寬低於流入流量
  • 大量突發流量
  • 備份或檔案傳輸
  • QoS 設計
  • 網路 Loop
  • 廣播過多

有 Drop 不一定表示硬體故障,也可能是流量超過可用頻寬。

此時應觀察:

  • 介面利用率
  • 流量方向
  • Queue
  • QoS
  • Top Talker
  • 發生時間

Wi-Fi 時好時壞要看什麼?

無線網路的間歇性問題比有線更常見,因為傳輸媒介是共享的空氣。


Client 連到哪一台 AP?

同一個 SSID 可能由多台 AP 提供。

使用者說:

二樓可以,三樓不行。

或:

坐在座位上不穩,走到會議室就正常。

這可能表示問題只出現在特定 AP。

需要記錄:

  • AP 名稱
  • BSSID
  • Radio
  • Band
  • Channel
  • RSSI
  • SNR
  • 連線速率
  • 重試率
  • 漫遊時間

如果只記 SSID,資訊還不夠。

同一個 SSID 底下可能有十幾台 AP,使用者實際連到誰才是關鍵。


RSSI 和 SNR

RSSI 代表接收訊號強度。

數值通常是負數,例如:

-45 dBm:強
-65 dBm:普通至良好
-75 dBm:偏弱
-85 dBm:很弱

實際門檻仍受裝置、頻段與應用需求影響。

SNR 是訊號和背景雜訊的差距。

即使 RSSI 看起來不差,如果環境雜訊很高,SNR 仍可能很低,導致大量重傳。

因此,Wi-Fi 滿格不代表品質一定好。

AP 聲音很大,不代表它聽得清楚 Client 回話。


Channel Utilization

Wi-Fi 使用共享媒介,同一頻道上的裝置需要競爭 Airtime。

Channel Utilization 過高時,Client 必須等待更久才能傳送。

可能原因:

  • 同一 AP Client 太多
  • 鄰近 AP 使用相同頻道
  • 非 Wi-Fi 干擾
  • 頻道寬度過大
  • 大量低速 Client 占用 Airtime
  • Broadcast/Multicast 過多

症狀可能是:

  • 訊號強但速度慢
  • 中午或會議期間特別嚴重
  • Ping 延遲突然升高
  • 視訊會議卡頓

Roaming

使用者移動時,Client 會決定何時從舊 AP 漫遊到新 AP。

如果 Client 太黏著舊 AP,可能出現:

  • 已經走到下一層樓,仍連遠方 AP
  • RSSI 很弱才切換
  • 切換期間短暫斷線
  • 認證重新進行
  • DHCP 或 Session 中斷

Roaming 通常由 Client 主導,AP 只能提供協助。

因此,不一定是 AP「不願意放人」,也可能是 Client Driver、功率或漫遊策略。


固定時間發生,先查排程

如果問題每天在固定時間出現,應調查環境中同時發生的工作。

常見項目:

  • 備份
  • 防毒掃描
  • 弱點掃描
  • 系統更新
  • 大量檔案同步
  • Log 上傳
  • 資料庫工作
  • VM Snapshot
  • DHCP 續租
  • WAN 切換測試
  • Wi-Fi Channel 調整
  • 夜間設備重啟

例如每天中午網路變慢,可能不是交換器中午想休息,而是大量員工同時看影片、更新軟體或進行雲端同步。

每天凌晨固定斷線,則可能與備份、線路維護或設備排程有關。

事件時間和排程資料對上後,根因通常會靠近很多。


DHCP 續租會造成定期斷線嗎?

正常的 DHCP Renew 不應明顯中斷網路。

Client 通常在租期尚未過期前,就向 DHCP Server續租。

但如果:

  • DHCP Server 不可達
  • Relay 間歇性失敗
  • Client 切換 VLAN
  • 租約資料異常
  • DHCP Failover 有問題
  • Client Driver 重設介面
  • NAC/802.1X 重新認證

就可能在固定時間附近發生連線問題。

可以比較:

  • Lease Obtained
  • Lease Expires
  • 斷線時間
  • DHCP Client Log
  • Server Lease Log

如果每次故障剛好接近租約事件,就值得深入調查。

但不要看到週期性就直接宣判 DHCP。週期性只是特徵,很多排程都能製造相同外觀。


DNS Timeout 也可能讓網路看起來不穩

如果 DNS Server 偶爾無法回應,使用者可能覺得:

  • 有些網站能開
  • 有些網站一直轉圈
  • 重新整理後又正常
  • 通訊軟體不受影響
  • 直接連 IP 正常

已經解析過、仍在 Cache 裡的名稱可能可以使用;新的查詢則會 Timeout。

因此,同一時間測試:

Ping 外部 IP
nslookup 外部名稱

很重要。

如果 IP 持續正常,只有 DNS Query 間歇失敗,問題就不應繼續被描述成整體網路斷線。


MTU 問題為什麼看起來像偶爾壞?

MTU 是網路介面能傳送的最大封包大小。

經過 VPN、PPPoE 或 Tunnel 時,額外 Header 會占用空間。

如果封包過大,而路徑又無法正確 Fragment 或回報:

ICMP Fragmentation Needed

就可能出現:

  • Ping 小封包正常
  • 網頁首頁能開
  • 登入或上傳卡住
  • 某些網站正常、某些失敗
  • VPN 內大型傳輸中斷
  • RDP 偶爾凍結

這類問題常被稱為 Path MTU Discovery Black Hole。

因為小流量與小封包看似正常,問題只在特定資料大小出現,所以很像間歇性應用故障。

調查時可以比較不同封包大小與 DF 設定,但變更 MTU 前應先確認實際路徑和 Tunnel Overhead,不能看到 VPN 就隨便把 MTU 調得很小。


網路 Loop 可能造成時好時壞

Layer 2 Loop 可能引發:

  • Broadcast Storm
  • MAC Address Flapping
  • CPU 升高
  • Switch 管理困難
  • Packet Loss
  • 全區網路間歇中斷
  • DHCP 異常
  • 大量未知單播 Flooding

有時 Loop 不是一直存在。

例如有人把線接成環路,偶爾插拔;或某台設備啟動後才 Bridge 兩個介面。

症狀可能是:

  • 某區突然全面變慢
  • 過一會兒自行恢復
  • Switch Log 大量 MAC Flap
  • STP Topology Change 頻繁
  • 介面流量異常暴增

這時持續 Ping 只能看到網路很慘,真正重要的是 Switch 的:

  • STP 狀態
  • MAC Flapping
  • Broadcast Rate
  • Interface Utilization
  • CPU
  • Loop Detection
  • Log 時間

遇到疑似 Loop 時,要依既有流程隔離範圍,避免直接亂拔核心上聯。拔錯那條,原本只是網路慢,會立刻升級成真的全斷。


Firewall Session 與 Timeout

Stateful Firewall 會記錄連線狀態。

如果 Session Table、Timeout 或資源出現問題,可能造成:

  • 新連線偶爾失敗
  • 舊連線突然中斷
  • UDP 應用定期失去回應
  • VPN Keepalive 失敗
  • NAT Port 資源不足

需要查看:

  • Session Count
  • CPU/Memory
  • Drop Reason
  • NAT Pool
  • TCP/UDP Timeout
  • Firewall Log
  • HA 狀態
  • Session Synchronization

如果只有某種應用在固定閒置時間後斷線,可能與 Session Timeout 有關。

例如 RDP 閒置三十分鐘後斷線,重新連線又正常,就不太像實體線材每三十分鐘準時鬆一次。


不要看到一次 Timeout 就宣布丟包

網路測試需要一定樣本。

執行四次 Ping,出現一次 Timeout,不足以立刻證明整條網路有嚴重問題。

可能原因包括:

  • 目的設備限制 ICMP
  • 第一個封包觸發 ARP
  • 無線正常重傳
  • 設備暫時優先處理其他工作
  • Client 本機忙碌

反過來,現在連續十次都成功,也不能推翻使用者過去一小時斷線十次的紀錄。

判斷間歇性問題需要:

  • 足夠觀察時間
  • 多個測試點
  • 正常對照組
  • 設備 Log
  • 與使用者症狀對時
  • 修正前後比較

不要讓單次成功或失敗控制整個結論。


建立簡單的持續監測

可以透過腳本定期記錄:

  • Timestamp
  • Gateway Ping
  • Server Ping
  • 外部 IP Ping
  • DNS Query Time
  • TCP Port 狀態
  • HTTP Response Time
  • Packet Loss
  • 使用的介面

例如每十秒寫入:

2026-07-23 09:10:00, gateway=1ms, server=3ms, internet=8ms, dns=20ms
2026-07-23 09:10:10, gateway=timeout, server=timeout, internet=timeout, dns=failed
2026-07-23 09:10:20, gateway=1ms, server=3ms, internet=9ms, dns=21ms

當使用者回報 09:10 左右斷線時,就能看到所有測試是否同步異常。

監測頻率也要合理。

每毫秒測一次不但沒必要,還可能讓監測本身變成額外負載。目標是捕捉問題,不是用測試工具對網路進行壓力測驗。


Log 的時間一定要同步

要把 Client、Switch、Firewall、AP 和 Server 的事件串起來,設備時間必須大致一致。

如果:

  • Client 顯示 10:00
  • Switch 顯示 09:52
  • Firewall 使用 UTC
  • AP 快了三分鐘

同一場事故會像分散在不同平行宇宙。

因此企業環境應使用 NTP,並記錄:

  • 時區
  • Log 顯示格式
  • 是否為 UTC
  • 設備時間是否同步

查間歇性問題時,時間戳就是把不同證據串在一起的線。

沒有正確時間,Log 再多也只是一大片不太合作的文字。


修復後要觀察多久?

如果問題原本每十分鐘發生一次,修正後測試三十秒就結案,說服力不高。

至少要經過原本容易發生的時間窗口。

例如:

  • 原本每十分鐘斷線
    → 觀察至少數個週期

  • 原本每天中午發生
    → 等下一個相同時段驗證

  • 原本大型傳輸才出現
    → 重新執行相同傳輸

  • 原本移動樓層時發生
    → 重走相同漫遊路徑

修復驗證應盡量重現原始條件。

如果暫時無法再次發生,也要記錄:

  • 目前發現的證據
  • 已完成的變更
  • 尚未確認的假設
  • 下次發生時要蒐集什麼
  • 是否持續監測
  • 是否需要通知廠商

不能只寫:

現在正常,結案。

這句話和「問題自己好了」的資訊量差不多,都很省字,也都救不了下次的自己。


間歇性問題排錯 SOP

第一步:定義現象

確認:

  • 是斷線、延遲、丟包還是應用 Timeout
  • 發生時間
  • 持續時間
  • 頻率
  • 使用的網路與服務

第二步:確認影響範圍

  • 單一 Client
  • 單一 Port
  • 單一 AP
  • 單一區域
  • 單一 VLAN
  • 全公司
  • 跨廠區

第三步:建立對照組

找正常 Client 在同時間執行相同測試。

第四步:分層持續監測

同時測:

  • Default Gateway
  • 內部 Server
  • 外部 IP
  • DNS
  • 實際服務

第五步:查看設備資料

依情況確認:

  • CRC/Interface Error
  • Flapping
  • STP
  • MAC Flapping
  • AP、RSSI、SNR
  • Channel Utilization
  • Firewall Session
  • DHCP Lease
  • Server Log
  • 排程工作

第六步:對齊時間

將使用者回報、監測與設備 Log 放在同一時間軸。

第七步:一次調整一個條件

保留原值,記錄變更與預期結果。

第八步:跨越原週期驗證

確認問題沒有在相同條件下再次發生。


Day 10 小結:間歇性問題需要留下現場

完全斷線時,故障狀態一直在那裡等你調查。

間歇性問題則必須透過監測,把短暫發生的現象保存下來。

最重要的方法包括:

  • 建立事件時間軸
  • 同時測試多個網路節點
  • 建立正常對照組
  • 觀察錯誤 Counter 和設備 Log
  • 將故障時間與排程、Lease、漫遊或 Session 對照
  • 修復後跨越原發生週期驗證

不要只問:

現在通不通?

更應該問:

問題發生時,哪個測試點最先失敗?哪些設備同時受到影響?

今天完成後,我們已經從實體連線、DHCP、DNS 和 Gateway,一路建立出基本的端點排錯邏輯。


上一篇
Day.9|可以連同網段,卻出不了公司:Default Gateway 在幹嘛?
下一篇
Day.11|明明接在同一台交換器,為什麼彼此看不到?
系列文
連網路壞在哪都不知道,怎麼成為系統網路工程師?11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言